#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
/*
给定一个 24 小时制（小时:分钟 "HH:MM"）的时间列表，找出列表中任意两个时间的最小时间差并以分钟数表示。

 

示例 1：

输入：timePoints = ["23:59","00:00"]
输出：1
示例 2：

输入：timePoints = ["00:00","23:59","00:00"]
输出：0
 

提示：

2 <= timePoints <= 2 * 104
timePoints[i] 格式为 "HH:MM"

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/minimum-time-difference
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/

class Solution
{
public:
    int findMinDifference(vector<string> &timePoints)
    {
        if (timePoints.size() > 1440)
            return 0;
        vector<int> temp;
        for (int i = 0; i < timePoints.size(); i++)
        {
            temp.push_back(((timePoints[i][0] - '0') * 10 + (timePoints[i][1] - '0')) * 60 + ((timePoints[i][3] - '0') * 10 + (timePoints[i][4] - '0')));
        }
        //秒
        sort(temp.begin(), temp.end());
        int res = INT32_MAX;
        int n = temp.size();
        for (int i = 1; i < n; i++)
        {
            res = min(res, temp[i] - temp[i - 1]);
        }
        res = min(res, 24 * 60 - (temp[n - 1] - temp[0]));
        return res;
    }
};